library(tidyverse)
library(stringr)

# Set the directory to the location of the replication data
setwd("")

D <- read_csv("Data_Raw/RAW-Chile+Politician+Survey+-+Spanish_June+16%2C+2022_03.09.csv")[-c(1, 2), ]

D <- D %>%
     rename(duration = `Duration (in seconds)`,
            V1_incivility = Q17, V2_incivility = Q77,
            V1_prejudice = Q19_1, V2_prejudice = Q78_1, 
            V1_opinion_diff = Q19_2, V2_opinion_diff = Q78_2, 
            V1_dislike_party = Q19_3, V2_dislike_party = Q78_3, 
            V1_discourage_pol = Q19_4, V2_discourage_pol = Q78_4, 
            V1_dissatisfied = Q19_5, V2_dissatisfied = Q78_5, 
            V1_troll_pol = Q19_6, V2_troll_pol = Q78_6, 
            V1_troll_user = Q19_7, V2_troll_user = Q78_7,
            
            conjoint1 = Q25, conjoint2 = Q47, conjoint3 = Q49,
            conjoint4 = Q51, conjoint5 = Q53__61, 

            resp_ideology = Q21, resp_gender = Q22, resp_party = Q36__68,
            resp_exposure = Q30) %>%
     mutate(duration = as.numeric(duration),
            Q71 = as.character(Q71))

D <- D %>%
     mutate(V1_incivility = recode(V1_incivility, "10 (Extremadamente irrespetuosa)" = "10"),
            V1_incivility = recode(V1_incivility, "0 (Nada irrespetuosa)" = "0"),
            V2_incivility = recode(V2_incivility, "10 (Extremadamente irrespetuosa)" = "10"),
            V2_incivility = recode(V2_incivility, "0 (Nada irrespetuosa)" = "0")) %>%
     mutate(concern_disrespect = recode(Q32, "Para nada preocupado" = 1,
                                             "Un poco preocupado" = 2,
                                             "Algo preocupado" = 3,
                                             "Moderadamente preocupado" = 4,
                                             "Extremadamente preocupado" = 5), 
            govt_action = recode(Q36__48, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6)) %>%
     mutate(V1_incivility = as.numeric(V1_incivility),
            V2_incivility = as.numeric(V2_incivility)) %>%
     mutate(V1_prejudice = recode(V1_prejudice, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V2_prejudice = recode(V2_prejudice, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V1_opinion_diff = recode(V1_opinion_diff, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V2_opinion_diff = recode(V2_opinion_diff, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V1_dislike_party = recode(V1_dislike_party, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V2_dislike_party = recode(V2_dislike_party, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V1_discourage_pol = recode(V1_discourage_pol, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V2_discourage_pol = recode(V2_discourage_pol, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),

            V1_dissatisfied = recode(V1_dissatisfied, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V2_dissatisfied = recode(V2_dissatisfied, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V1_troll_pol = recode(V1_troll_pol, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V2_troll_pol = recode(V2_troll_pol, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V1_troll_user = recode(V1_troll_user, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6),
            V2_troll_user = recode(V2_troll_user, "Muy en desacuerdo" = 1, "Algo en desacuerdo" = 2, "Un poco en desacuerdo" = 3, "Un poco de acuerdo" = 4, "Algo de acuerdo" = 5, "Muy de acuerdo" = 6)) %>%
     mutate(resp_ideology = recode(resp_ideology, "(Izquierda)\n0" = "0", "(Derecha)\n10" = "10"),
            resp_gender = recode(resp_gender, "Femenino" = "Female", "Masculino" = "Male", "Otro" = "Other"),
            resp_ideology = as.numeric(resp_ideology),
            resp_exposure_binary = ifelse(!is.na(resp_exposure), "Experienced social media harassment", "Has not experienced social media harassment"),
            resp_exposure_sexist_remarks = ifelse((is.na(resp_exposure) | !str_detect(resp_exposure, "Comentarios sexistas")), "No sexist remarks", "Sexist remarks"),
            resp_exposure_disrespectful_remarks = ifelse((is.na(resp_exposure) | !str_detect(resp_exposure, "Comentarios muy irrespetuosos")), "No disrespectful remarks", "Disrespectful remarks"),
            resp_exposure_sexualized_images = ifelse((is.na(resp_exposure) | !str_detect(resp_exposure, "Tener imágenes humillantes o sexuales de usted siendo difundidas por redes sociales")), "No humiliating/sexually charged images of oneself", "Humiliating/sexually charged images of oneself"),
            resp_exposure_violent_threats = ifelse((is.na(resp_exposure) | !str_detect(resp_exposure, "Amenazas de violencia")), "No violent threats", "Violent threats"),
            resp_exposure_persistent_harassment = ifelse((is.na(resp_exposure) | !str_detect(resp_exposure, "Acoso \\(exposición a comportamientos insistentes y no invitados\\)")), "No persistent harassment", "Persistent harassment"),
            resp_personal_disrespect = recode(Q31, "Varias veces al día" = "Several times a day",
                                                   "Aproximadamente una vez al día" = "About once a day",
                                                   "Entre 3 y 6 días a la semana" = "3 to 6 days a week",
                                                   "Entre 1 y 2 días a la semana" = "1 to 2 days a week",
                                                   "Cada cierto número de semanas" = "Every few weeks",
                                                   "Con menos frequencia" = "Less often",
                                                   "Nunca" = "Never"),
            resp_other_disrespect = recode(Q71, "Varias veces al día" = "Several times a day",
                                                "Aproximadamente una vez al día" = "About once a day",
                                                "Entre 3 y 6 días a la semana" = "3 to 6 days a week",
                                                "Entre 1 y 2 días a la semana" = "1 to 2 days a week",
                                                "Cada cierto número de semanas" = "Every few weeks",
                                                "Con menos frequencia" = "Less often",
                                                "Nunca" = "Never"),
            resp_party = recode(resp_party, "No me considero cercano a ningún partido" = "Does not identify",
                                "Partido Demócrata Cristiano" = "Partido Demócrata Cristiano",
                                "Renovación Nacional" = "Renovación Nacional",
                                "Partido Republicano de Chile" = "Partido Republicano de Chile",
                                "Partido por la Democracia" = "Partido por la Democracia",
                                "Partido de la Gente" = "Partido de la Gente",
                                "Partido Comunista de Chile" = "Partido Comunista de Chile",
                                "Unión Demócrata Independiente" = "Unión Demócrata Independiente",
                                "Partido Socialista de Chile" = "Partido Socialista de Chile",
                                "Revolución Democrática" = "Revolución Democrática",
                                "Comunes" = "Comunes",
                                "Partido Liberal de Chile" = "Partido Liberal de Chile",
                                "Evolución Política" = "Evolución Política",
                                "Convergencia Social" = "Convergencia Social",
                                "Partido Radical de Chile" = "Partido Radical de Chile",
                                "Federación Regionalista Verde Social" = "Federación Regionalista Verde Social")) %>%
     mutate(resp_ideology_discrete = case_when(resp_ideology %in% 0:4 ~ "Left-wing",
                                               resp_ideology %in% 5 ~ "Center",
                                               resp_ideology %in% 6:10 ~ "Right-wing"))


# CLEAN THE SINGLE VIGNETTE DATA

V <- tibble(country = "Chile",
            respondent_type = "Politician",
            respondent_type_three = rep(D$respondent_type_three, 2),
            id = rep(paste("CL politician", 1:nrow(D)), 2),
            resp_gender = rep(D$resp_gender, 2),
            resp_party = rep(D$resp_party, 2),
            pop_party = rep(D$pop_party, 2),
            resp_ideology = rep(D$resp_ideology, 2),
            resp_ideology_discrete = rep(D$resp_ideology_discrete, 2),
            resp_exposure_binary = rep(D$resp_exposure_binary, 2),
            resp_exposure_sexist_remarks = rep(D$resp_exposure_sexist_remarks, 2),
            resp_exposure_disrespectful_remarks = rep(D$resp_exposure_disrespectful_remarks, 2),
            resp_exposure_sexualized_images = rep(D$resp_exposure_sexualized_images, 2),
            resp_exposure_violent_threats = rep(D$resp_exposure_violent_threats, 2),
            resp_exposure_persistent_harassment = rep(D$resp_exposure_persistent_harassment, 2),
            resp_personal_disrespect = rep(D$resp_personal_disrespect, 2),
            resp_other_disrespect = rep(D$resp_other_disrespect, 2),
            concern_disrespect = c(D$concern_disrespect, rep(NA, length(D$concern_disrespect))),
            govt_action = c(D$govt_action, rep(NA, length(D$govt_action))),

            incivility = c(D$V1_incivility, D$V2_incivility),
            task_number = rep(paste0("Task ", 1:2), each = nrow(D)),
            
            party_pol = c(D$`V-1-1-1`, D$`V-2-1-1`),
            woman_pol = c(D$`V-1-1-2`, D$`V-2-1-2`),
            text_pol = c(D$`V-1-1-3`, D$`V-2-1-3`),
            woman_user = c(D$`V-1-1-4`, D$`V-2-1-4`),
            text_user = c(D$`V-1-1-5`, D$`V-2-1-5`),
            gendered = c(D$`V-1-1-6`, D$`V-2-1-6`),
            
            prejudice = c(D$V1_prejudice, D$V2_prejudice),
            opinion_diff = c(D$V1_opinion_diff, D$V2_opinion_diff),
            dislike_party = c(D$V1_dislike_party, D$V2_dislike_party),
            discourage_pol = c(D$V1_discourage_pol, D$V2_discourage_pol),
            dissatisfied = c(D$V1_dissatisfied, D$V2_dissatisfied),
            troll_pol = c(D$V1_troll_pol, D$V2_troll_pol),
            troll_user = c(D$V1_troll_user, D$V2_troll_user))

V <- V %>%
     mutate(party_pol = recode(party_pol, "Party01" = "Renovación Nacional", "Party02" = "Partido Socialista de Chile", "Party03" = "Revolución Democrática"),
            poc_pol = recode(woman_pol, "Pol01" = "White politician", "Pol02" = "White politician", "Pol03" = "Person of Color politician",
                                        "Pol04" = "Person of Color politician", "Pol05" = "White politician", "Pol06" = "White politician",
                                        "Pol07" = "White politician", "Pol08" = "Person of Color politician", "Pol09" = "White politician",
                                        "Pol10" = "White politician", "Pol11" = "White politician", "Pol12" = "Person of Color politician",
                                        "Pol13" = "Person of Color politician", "Pol14" = "White politician", "Pol15" = "White politician",
                                        "Pol16" = "White politician", "Pol17" = "Person of Color politician", "Pol18" = "Person of Color politician"),
            woman_pol = recode(woman_pol, "Pol01" = "Woman politician", "Pol02" = "Woman politician", "Pol03" = "Woman politician",
                                          "Pol04" = "Woman politician", "Pol05" = "Woman politician", "Pol06" = "Woman politician",
                                          "Pol07" = "Woman politician", "Pol08" = "Woman politician", "Pol09" = "Woman politician",
                                          "Pol10" = "Man politician", "Pol11" = "Man politician", "Pol12" = "Man politician",
                                          "Pol13" = "Man politician", "Pol14" = "Man politician", "Pol15" = "Man politician",
                                          "Pol16" = "Man politician", "Pol17" = "Man politician", "Pol18" = "Man politician"),
            text_pol_group = recode(text_pol, "PolText01" = "Economy", "PolText02" = "Economy",
                                              "PolText03" = "Economy", "PolText04" = "Economy",
                                              "PolText05" = "Healthcare", "PolText06" = "Healthcare",
                                              "PolText07" = "Healthcare", "PolText08" = "Healthcare",
                                              "PolText09" = "Education", "PolText10" = "Education",
                                              "PolText11" = "Education", "PolText12" = "Education",
                                              "PolText13" = "Crime", "PolText14" = "Crime",
                                              "PolText15" = "Crime", "PolText16" = "Crime",
                                              "PolText17" = "National security", "PolText18" = "National security",
                                              "PolText19" = "National security", "PolText20" = "National security"),
            woman_user = recode(woman_user, "User01" = "Woman user", "User02" = "Woman user", "User03" = "Woman user",
                                            "User04" = "Woman user", "User05" = "Woman user", "User06" = "Woman user",
                                            "User07" = "Woman user", "User08" = "Woman user", "User09" = "Woman user",
                                            "User10" = "Man user", "User11" = "Man user", "User12" = "Man user",
                                            "User13" = "Man user", "User14" = "Man user", "User15" = "Man user",
                                            "User16" = "Man user", "User17" = "Man user", "User18" = "Man user"),
            gendered = recode(gendered, "Gendered01" = "Non-gendered text", "Gendered02" = "Gendered text"))

V$party_pol_copartisan <- "Non co-partisan"
V$party_pol_copartisan[V$party_pol == "Renovación Nacional" & V$resp_party %in% c("Renovación Nacional") |
                       V$party_pol == "Partido Socialista de Chile" & V$resp_party %in% c("Partido Socialista de Chile") |
                       V$party_pol == "Revolución Democrática" & V$resp_party %in% c("Revolución Democrática")] <- "Co-partisan"

V <- V %>% arrange(id)

write_csv(V, "Data_Cleaned/CL_Politician_Vignette.csv")



# CLEAN THE PAIRED CONJOINT DATA

C <- tibble(country = "Chile",
            respondent_type = "Politician",
            respondent_type_three = rep(D$respondent_type_three, 10),
            id = rep(paste("CL politician", 1:nrow(D)), 10),
            duration = rep(D$duration, 10),
            resp_gender = rep(D$resp_gender, 10),
            resp_party = rep(D$resp_party, 10),
            resp_ideology = rep(D$resp_ideology, 10),
            resp_ideology_discrete = rep(D$resp_ideology_discrete, 10),
            resp_exposure_binary = rep(D$resp_exposure_binary, 10),

            task_number = paste0("Task ", rep(rep(1:5, each = 2), nrow(D))),

            chose_profile = c(as.numeric(D$conjoint1 == "Conversación A"),
                              as.numeric(D$conjoint1 == "Conversación B" | D$conjoint1 == "Conversación  B"),
                              as.numeric(D$conjoint2 == "Conversación A"),
                              as.numeric(D$conjoint2 == "Conversación B" | D$conjoint2 == "Conversación  B"),
                              as.numeric(D$conjoint3 == "Conversación A"),
                              as.numeric(D$conjoint3 == "Conversación B" | D$conjoint3 == "Conversación  B"),
                              as.numeric(D$conjoint4 == "Conversación A"),
                              as.numeric(D$conjoint4 == "Conversación B" | D$conjoint4 == "Conversación  B"),
                              as.numeric(D$conjoint5 == "Conversación A"),
                              as.numeric(D$conjoint5 == "Conversación B" | D$conjoint5 == "Conversación  B")),

            party_pol = c(D$`F-1-1-1`, D$`F-1-2-1`, D$`F-2-1-1`, D$`F-2-2-1`, D$`F-3-1-1`, D$`F-3-2-1`, D$`F-4-1-1`, D$`F-4-2-1`, D$`F-5-1-1`, D$`F-5-2-1`),
            woman_pol = c(D$`F-1-1-2`, D$`F-1-2-2`, D$`F-2-1-2`, D$`F-2-2-2`, D$`F-3-1-2`, D$`F-3-2-2`, D$`F-4-1-2`, D$`F-4-2-2`, D$`F-5-1-2`, D$`F-5-2-2`),
            text_pol = c(D$`F-1-1-3`, D$`F-1-2-3`, D$`F-2-1-3`, D$`F-2-2-3`, D$`F-3-1-3`, D$`F-3-2-3`, D$`F-4-1-3`, D$`F-4-2-3`, D$`F-5-1-3`, D$`F-5-2-3`),
            woman_user = c(D$`F-1-1-4`, D$`F-1-2-4`, D$`F-2-1-4`, D$`F-2-2-4`, D$`F-3-1-4`, D$`F-3-2-4`, D$`F-4-1-4`, D$`F-4-2-4`, D$`F-5-1-4`, D$`F-5-2-4`),
            text_user = c(D$`F-1-1-5`, D$`F-1-2-5`, D$`F-2-1-5`, D$`F-2-2-5`, D$`F-3-1-5`, D$`F-3-2-5`, D$`F-4-1-5`, D$`F-4-2-5`, D$`F-5-1-5`, D$`F-5-2-5`),
            gendered = c(D$`F-1-1-6`, D$`F-1-2-6`, D$`F-2-1-6`, D$`F-2-2-6`, D$`F-3-1-6`, D$`F-3-2-6`, D$`F-4-1-6`, D$`F-4-2-6`, D$`F-5-1-6`, D$`F-5-2-6`))

C <- C %>%
     mutate(party_pol = recode(party_pol, "Party01" = "Renovación Nacional", "Party02" = "Partido Socialista de Chile", "Party03" = "Revolución Democrática"),
            poc_pol = recode(woman_pol, "Pol01" = "White politician", "Pol02" = "White politician", "Pol03" = "Person of Color politician",
                                        "Pol04" = "Person of Color politician", "Pol05" = "White politician", "Pol06" = "White politician",
                                        "Pol07" = "White politician", "Pol08" = "Person of Color politician", "Pol09" = "White politician",
                                        "Pol10" = "White politician", "Pol11" = "White politician", "Pol12" = "Person of Color politician",
                                        "Pol13" = "Person of Color politician", "Pol14" = "White politician", "Pol15" = "White politician",
                                        "Pol16" = "White politician", "Pol17" = "Person of Color politician", "Pol18" = "Person of Color politician"),
            woman_pol = recode(woman_pol, "Pol01" = "Woman politician", "Pol02" = "Woman politician", "Pol03" = "Woman politician",
                                          "Pol04" = "Woman politician", "Pol05" = "Woman politician", "Pol06" = "Woman politician",
                                          "Pol07" = "Woman politician", "Pol08" = "Woman politician", "Pol09" = "Woman politician",
                                          "Pol10" = "Man politician", "Pol11" = "Man politician", "Pol12" = "Man politician",
                                          "Pol13" = "Man politician", "Pol14" = "Man politician", "Pol15" = "Man politician",
                                          "Pol16" = "Man politician", "Pol17" = "Man politician", "Pol18" = "Man politician"),
            text_pol_group = recode(text_pol, "PolText01" = "Economy", "PolText02" = "Economy",
                                             "PolText03" = "Economy", "PolText04" = "Economy",
                                             "PolText05" = "Healthcare", "PolText06" = "Healthcare",
                                             "PolText07" = "Healthcare", "PolText08" = "Healthcare",
                                             "PolText09" = "Education", "PolText10" = "Education",
                                             "PolText11" = "Education", "PolText12" = "Education",
                                             "PolText13" = "Crime", "PolText14" = "Crime",
                                             "PolText15" = "Crime", "PolText16" = "Crime",
                                             "PolText17" = "National security", "PolText18" = "National security",
                                             "PolText19" = "National security", "PolText20" = "National security"),
            woman_user = recode(woman_user, "User01" = "Woman user", "User02" = "Woman user", "User03" = "Woman user",
                                            "User04" = "Woman user", "User05" = "Woman user", "User06" = "Woman user",
                                            "User07" = "Woman user", "User08" = "Woman user", "User09" = "Woman user",
                                            "User10" = "Man user", "User11" = "Man user", "User12" = "Man user",
                                            "User13" = "Man user", "User14" = "Man user", "User15" = "Man user",
                                            "User16" = "Man user", "User17" = "Man user", "User18" = "Man user"),
            gendered = recode(gendered, "Gendered01" = "Non-gendered text", "Gendered02" = "Gendered text"))

C$party_pol_copartisan <- "Non co-partisan"
C$party_pol_copartisan[C$party_pol == "Renovación Nacional" & C$resp_party %in% c("Renovación Nacional") |
                       C$party_pol == "Partido Socialista de Chile" & C$resp_party %in% c("Partido Socialista de Chile") |
                       C$party_pol == "Revolución Democrática" & C$resp_party %in% c("Revolución Democrática")] <- "Co-partisan"

C <- C %>% arrange(id)

write_csv(C, "Data_Cleaned/CL_Politician_Conjoint.csv")


